package com.nan.leetcode.剑指offer第二版.旋转数组的最小数字;

public class Main {
    public int minArray(int[] numbers) {
        //二分查找
        int i=0;
        int j=numbers.length-1;
        while(j>i) {
            int m=(i+j)/2;
            if (numbers[m] > numbers[j]) {//当 nums[m] > nums[j] 时： m一定在 左排序数组 中，
                // 即旋转点 x 一定在 [m + 1, j]闭区间内，因此执行 i = m + 1；
                i = m + 1;
            } else if (numbers[m] < numbers[j]) {
                j = m;
            }else{
                j=j-1;//当 nums[m] = nums[j] 时，无法判定 m 在左（右）排序数组，
            }
        }
        return numbers[i];//返回旋转点的值即为最小值
    }
}
